#ifndef __INKLUDE_C_HTTP_CLIENT_H__
#define __INKLUDE_C_HTTP_CLIENT_H__


#include <Inklude/Inklude.h>
#include <string>
#include <memory>
#include <vector>

// Basic implementation is OK
// but user authentication part is wired.
// It should be modified.
// Till then, PLEASE DO NOT USE 
namespace Inklude
{
    class INKLUDE_CLASS_EXPORT ikCHttpClient
    {
    public:
        ikCHttpClient();
        ~ikCHttpClient();
        void PutVariable(const char* VariableName,const char* Value);
	    std::string GetVariable(const char* VariableName) const;
	    void SetHost(const char* HostName);
	    void SetScriptFile(const char* ScriptFilePath);
	    std::string GetHost() const;
	    std::string GetScriptFile() const;
	    bool SendRequest();
	    int  GetResponse(void* pBuffer, unsigned int nResponseSize);
	    unsigned long GetBytesRead();
        void Reset();
        void SetUserName(const char* UserName);
        void SetPassword(const char* Password);

    protected:
    private:
        std::string m_userName;
        std::string m_password;
        std::vector<std::string> m_vctVars;
	    std::vector<std::string> m_vctVals;
	    std::string m_strHostName;
	    std::string m_strScriptFile;
	    unsigned long m_lBytesRead;

        void* m_pClient;
        void* m_pResponse;
    };
}

#endif // __INKLUDE_C_HTTP_CLIENT_H__

